Перейти к основному содержимому

С-Sharp

Создание пакета

using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace Sample
{

private const string ApiServerAddress = https://extractor.correct.su;

class ApiClientSingle
{
public async Task<int> CreatePackage()
{
using (var httpClient = new HttpClient
{
BaseAddress = new Uri(ApiServerAddress)
})
{
var authTokenBase64 = "INSERT_TOKEN_HERE";
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authTokenBase64);

var response = await httpClient.PostAsync("api/packages", null);
response.EnsureSuccessStatusCode();
var responseContent = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<dynamic>(responseContent);
return result.packageId;
}
}
}
}

Добавление изображений

using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace Sample
{
class ApiClientSingle
{

private const string ApiServerAddress = https://extractor.correct.su;

public async Task<string> AddImage(int packageId, string fileName, byte[] fileContent)
{
using (var httpClient = new HttpClient
{
BaseAddress = new Uri(ApiServerAddress)
})
{
var authTokenBase64 = "INSERT_TOKEN_HERE";
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authTokenBase64);

var requestContent = new MultipartFormDataContent
{
{ new ByteArrayContent(fileContent), "content", fileName }
};

var response = await httpClient.PostAsync($"api/images/package/{packageId}", requestContent);
var responseContent = await response.Content.ReadAsStringAsync();
if (response.StatusCode == HttpStatusCode.UnprocessableEntity)
{
return $"Пакет '{packageId}' уже в работе";
}
response.EnsureSuccessStatusCode();
return responseContent;
}
}
}
}

Запуск распознавания

using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace Sample
{
class ApiClientSingle
{

private const string ApiServerAddress = https://extractor.correct.su;

public async Task<string> StartRecognition(int packageId)
{
using (var httpClient = new HttpClient
{
BaseAddress = new Uri(ApiServerAddress)
})
{
var authTokenBase64 = "INSERT_TOKEN_HERE";
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authTokenBase64);

var response = await httpClient.PostAsync($"api/packages/{packageId}/start", null);
var responseContent = await response.Content.ReadAsStringAsync();
if (response.StatusCode == HttpStatusCode.UnprocessableEntity)
{
return $"Пакет '{packageId}' уже в работе";
}
response.EnsureSuccessStatusCode();
return responseContent;
}
}
}
}

Получение результата

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace Sample
{
class ApiClientSingle
{

private const string ApiServerAddress = https://extractor.correct.su;

public async Task<string> GetResult(int packageId)
{
using (var httpClient = new HttpClient
{
BaseAddress = new Uri(ApiServerAddress)
})
{
var authTokenBase64 = "INSERT_TOKEN_HERE";
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authTokenBase64);

var response = await httpClient.GetAsync($"api/packages/{packageId}",
HttpCompletionOption.ResponseContentRead);
var responseContent = await response.Content.ReadAsStringAsync();
response.EnsureSuccessStatusCode();
return responseContent;
}
}
}
}

Получение изображения

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace Sample
{
class ApiClientSingle
{

private const string ApiServerAddress = https://extractor.correct.su;

public async Task<string> GetImage(int imageId)
{
using (var httpClient = new HttpClient
{
BaseAddress = new Uri(ApiServerAddress)
})
{
var authTokenBase64 = "INSERT_TOKEN_HERE";
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authTokenBase64);

var response = await httpClient.GetAsync($"api/images/{imageId}",
HttpCompletionOption.ResponseContentRead);
var responseContent = await response.Content.ReadAsStringAsync();
response.EnsureSuccessStatusCode();
return responseContent;
}
}
}
}

Получение перечня изображений

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace Sample
{
class ApiClientSingle
{

private const string ApiServerAddress = https://extractor.correct.su;

public async Task<string> GetImage(int packageId)
{
using (var httpClient = new HttpClient
{
BaseAddress = new Uri(ApiServerAddress)
})
{
var authTokenBase64 = "INSERT_TOKEN_HERE";
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authTokenBase64);

var response = await httpClient.GetAsync($"api/images/package/{packageId}",
HttpCompletionOption.ResponseContentRead);
var responseContent = await response.Content.ReadAsStringAsync();
response.EnsureSuccessStatusCode();
return responseContent;
}
}
}
}